home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / comm / net / tf02.lha / TinyFugue / tf-lib / stack-q.tf < prev    next >
Text File  |  1995-08-12  |  686b  |  29 lines

  1. ;;;; Stack and queue macros.
  2. ;;;; Lets you keep stacks and queues of words.  /pop and /dequeue give their
  3. ;;;; results via /echo; use $(/pop) and $(/dequeue) to capture their results.
  4.  
  5. /~loaded stack_queue.tf
  6.  
  7. /require lisp.tf
  8.  
  9. ;;; /push <word> [<stack>]
  10. ; push word onto stack.
  11.  
  12. /def -i push = /eval /set %{2-stack}=%1 %%{%{2-stack}}
  13.  
  14. ;;; /pop [<stack>]
  15. ; get and remove top word from stack.
  16.  
  17. /def -i pop = /eval /car %%{%{1-stack}}%%; /set %{1-stack}=$$(/cdr %%{%{1-stack}})
  18.  
  19. ;;; /enqueue <word> [<queue>]
  20. ; put word on queue.
  21.  
  22. /def -i enqueue = /eval /set %{2-queue}=%%{%{2-queue}} %1
  23.  
  24. ;;; /dequeue [<queue>]
  25. ; get and remove first word from queue.
  26.  
  27. /def -i dequeue = /pop %1-queue
  28.  
  29.